mixin instantsearchUsage(fnSymbol)
  - const paramTag = fnSymbol.tags.find(tag => tag.title === 'param' && tag.name === '$0');
  if paramTag && paramTag.type
    - const paramTypeName = paramTag.type.name;
    - const paramsType = fnSymbol.relatedTypes && fnSymbol.relatedTypes.find(t => t.name === paramTypeName);
    - if(!paramsType) console.log(fnSymbol.relatedTypes.map(t => t.name));
    - const properties = '\n' + paramsType.properties.map(p => `  ${p.name}: ${p.type.name}`).join(',\n');
    .heading
      | Usage
    pre.CodeMirror.cm-s-mdn-like
      code
        span.cm-keyword const 
        span.cm-def search 
        span.cm-operator = 
        span.cm-variable=fnSymbol.name
        | ({ !{'\n'}
        for property in paramsType.properties
          span.cm-property='  '
            a.typed-link(href=`${navPath}#struct-${paramTypeName}-${property.name}`)=property.name
          | : 
          span.cm-def
            +type(property.type, fnSymbol.relatedTypes)
          | , !{'\n'}
        | }: 
        span.cm-def
          +type(paramsType, fnSymbol.relatedTypes)
        | );
        |
        br
        span.cm-variable search
        |.
        span.cm-property addWidget
        | (
        span.cm-comment /* A widget instance here */
        | );
